Exibi os números primos de um numero recebido pelo usuário, sem estrutura de repetição
Publicado por Edmar Wantuil (última atualização em 22/11/2011)
[ Hits: 2.189 ]
Homepage: wantuil.com
Escrevi esse código para testar os números primos <= de um numero recebido pelo usuário.
Economizado o máximo de processos possíveis e sem utilizar estrutura de repetição apenas recursividade.
/*
Feito por Edmar Wantuil Silva Júnior
Em 14 de novembro de 2011
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
//Função testa se é primo ele testa até encrontar um divisor o achando ele para o teste, pois já saberemos que ele é primo
int testa_primo(int numero, int divisor)
{
//Ira testar somente até a metade do numero pois sabemos que após a metade do nuemro so existe o proprio numero como divisor
if((numero / 2) < divisor)
return 0;
//Se achar qualquer divisor o teste irá parar pois o numero não é mais primo
if(numero % divisor == 0)
return 1;
else
return testa_primo(numero,divisor + 1);
}
//Essa função chama a função testa primo e retorna true caso primo
bool primo(numero)
{
//vamos passar o numero 2 como o primeiro divisor pois sabemos que todos os numeros são divisiveis assim se retornar 0 ele sera primo
if(testa_primo(numero,2) == 0)
return true;
else
return false;
}
//Essa função chama ela mesma até numero = cont
void primos(int numero, int cont)
{
if(primo(cont) == true)
printf("%d\n", cont);
if(numero > cont)
primos(numero, cont + 1);
return;
}
//Função principal
int main()
{
int numero= 0;
printf("Numero: ");
scanf("%d",&numero);
primos(numero, 1);
primo(numero);
return 0;
}
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Ativando e usando "zoom" no ambiente Cinnamon
Vídeo Nostálgico de Instalação do Conectiva Linux 9
Como realizar um ataque de força bruta para desobrir senhas?
Servidor para arquivos e banco de dados (0)
VOL já não é mais como antes? (27)
780 mil usuários do Janelas baIxaram Linux em um mês (2)
Atualizei meu ubuntu e desliguei e ele não inicia corretamente (11)









